package com.smartleanx.module.hrm.service.employee;

import javax.validation.*;

import com.smartleanx.module.hrm.controller.admin.employee.work.EmployeeWorkExperienceRespVO;
import com.smartleanx.module.hrm.controller.admin.employee.work.EmployeeWorkExperienceSaveReqVO;
import com.smartleanx.module.hrm.dal.dataobject.employee.EmployeeWorkExperienceDO;

import java.util.List;

/**
 * 员工工作经历 Service 接口
 *
 * @author tengcj
 */
public interface EmployeeWorkExperienceService {

    /**
     * 创建员工工作经历
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createEmployeeWorkExperience(@Valid EmployeeWorkExperienceSaveReqVO createReqVO);

    /**
     * 更新员工工作经历
     *
     * @param updateReqVO 更新信息
     */
    void updateEmployeeWorkExperience(@Valid EmployeeWorkExperienceSaveReqVO updateReqVO);

    /**
     * 删除员工工作经历
     *
     * @param id 编号
     */
    void deleteEmployeeWorkExperience(Long id);

    /**
     * 获得员工工作经历
     *
     * @param id 编号
     * @return 员工工作经历
     */
    EmployeeWorkExperienceDO getEmployeeWorkExperience(Long id);

    /**
     * 获得员工工作经历列表
     *
     * @param employeeId
     * @return
     */
    List<EmployeeWorkExperienceDO> getEmployeeWorkExperienceList(Long employeeId);

    void deleteByEmployeeId(Long employeeId);
}